home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
CIAFSU4B.ZIP
/
CIAFSUE.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-04-22
|
13KB
|
702 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN004
Boolean BOOLEAN005
Boolean BOOLEAN006
Boolean BOOLEAN007
Boolean BOOLEAN008
Boolean BOOLEAN009
Date DATE002
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
;------------------------------------------------------------------------------
STRING015 = " "
BOOLEAN006 = 1
BOOLEAN005 = 0
STRING011 = PPEPath() + "CIAFSUE.CNF"
STRING010 = ReadLine(STRING011, 1)
STRING016 = ReadLine(STRING011, 2)
STRING018 = ReadLine(STRING011, 3)
STRING017 = ReadLine(STRING011, 4)
STRING020 = ReadLine(STRING011, 5)
GetUser
STRING012 = U_Name()
INTEGER004 = U_Bdl()
INTEGER005 = U_Bul()
INTEGER006 = U_Ful()
INTEGER007 = U_Fdl()
DATE002 = DATE002
INTEGER008 = U_TimeOn()
If ((STRING010 >= U_Sec) || (U_Name() == "DEFCON 4")) Goto LABEL001
PrintLn "@X0F[@X07@X87Security Violation @X0F■ @X87Exiting CiA Full Screen User Editor @X0F]"
Goto LABEL016
:LABEL001
PrintLn "@CLS@@X07"
PrintLn "@X0F @X0D■@X07■@X0F■ @X07CiA Full Screen User Editor v4.0 by Defcon 4 [Ci/┤] @X0F■@X07■@X0D■"
PrintLn "@X05┌─────────────────────────── @X07User Number @X08[ @X08 ] @X05───────────────────────────────┐"
PrintLn "│ @X07[@X0FA@X07] Handle @X08[ ]@X05│@X07[@X0FL@X07] Security @X08[ ] @X05│"
PrintLn "│ @X07[@X0FB@X07] Address @X08[ ]@X05│@X07[@X0FM@X07] Expired Sec. @X08[ ] @X05│"
PrintLn "│ @X07[@X0FC@X07] City @X08 [ ]@X05│@X07[@X0FN@X07] Reg. Ex. Date@X08[ ] @X05│"
PrintLn "│ @X07[@X0FD@X07] State @X08[ ]@X05│@X07[@X0FO@X07] # of U/Ls @X08[ ] @X05│"
PrintLn "│ @X07[@X0FE@X07] Note@X08 [ @X08 ]@X05│@X07[@X0FP@X07] # of D/Ls @X08[ ] @X05│"
PrintLn "│ @X07[@X0FF@X07] Voice Phone@X08[ ]@X05│@X07[@X0FR@X07] Bytes U/L @X08[ ] @X05│"
PrintLn "│ @X07[@X0FG@X07] Data Phone @X08[ ]@X05│@X07[@X0FS@X07] Bytes D/L @X08[ ] @X05│"
PrintLn "│ @X07[@X0FH@X07] Expert Mode@X08[ ]@X05│@X07[@X0FT@X07] File Ratio @X08[ ] @X05│"
PrintLn "│ @X07[@X0FI@X07] Protocol @X08[ ]@X05│@X07[@X0FU@X07] Byte Ratio @X08[ ] @X05│"
PrintLn "│ @X07[@X0FJ@X07] Page Length@X08[ ]@X05│@X07[@X0FV@X07] Full Screen @X08[ ] @X05│"
PrintLn "│ @X07[@X0FK@X07] Real Name @X08[ ]@X05│@X07[@X0FW@X07] Password @X08[ ] @X05│"
PrintLn "├──────────────────────────────────────┴──────────────────────────────────────┤"
PrintLn "│ @X07[@X0FX@X07] Comment 1 @X08[ ] @X05│"
PrintLn "│ @X07[@X0FY@X07] Comment 2 @X08[ ] @X05│"
PrintLn "└─────────────────────────────────────────────────────────────────────────────┘"
PrintLn " @X07 [@X0FA-X@X07] Edit Field [@X0F+@X07] Next User [@X0F-@X07] Previous User [@X0F=@X07] User Jump [@X0FQ@X07]uit"
PrintLn " [@X0F*@X07] Auto Validate [@X0F%@X07] SysOp Sec. [@X0F!@X07] Lock Out [@X0F?@X07] Name Search"
:LABEL002
AnsiPos 43, 3
Print U_RecNum(U_Name())
AnsiPos 19, 4
Print U_Name()
AnsiPos 19, 5
Print U_Addr(0)
AnsiPos 19, 6
Print U_Addr(2)
AnsiPos 19, 7
Print U_Addr(3)
AnsiPos 13, 8
Print U_City
AnsiPos 19, 9
Print U_HVPhone
AnsiPos 19, 10
Print U_BDPhone
AnsiPos 19, 11
Print " "
AnsiPos 19, 11
If (U_Expert == 1) Print "On"
If (U_Expert == 0) Print "Off"
AnsiPos 19, 12
Print U_Trans
AnsiPos 19, 13
Print U_PageLen
AnsiPos 19, 14
Print U_Ver
AnsiPos 19, 16
Print U_Cmnt1
AnsiPos 19, 17
Print U_Cmnt2
AnsiPos 59, 4
Print STRING015
AnsiPos 59, 4
Print U_Sec
AnsiPos 59, 5
Print U_ExpSec
AnsiPos 59, 6
Print U_ExpDate
AnsiPos 59, 7
Print INTEGER006
AnsiPos 59, 8
Print U_Fdl()
AnsiPos 59, 9
Print INTEGER005
AnsiPos 59, 10
Print U_Bdl()
AnsiPos 59, 11
Print "@FILERATIO@"
AnsiPos 59, 12
Print "@BYTERATIO@"
AnsiPos 59, 13
Print " "
AnsiPos 59, 13
If (U_FSEP == 0) Then
If (U_FSE == 0) Print "No"
If (U_FSE == 1) Print "Yes"
Else
If (U_FSEP == 1) Print "Ask"
Endif
AnsiPos 59, 14
Print U_Pwd
If (BOOLEAN005 == 1) Return
:LABEL003
If (BOOLEAN004) Goto LABEL016
STRING014 = ""
:LABEL004
STRING013 = Upper(Inkey())
If (STRING013 == "") Goto LABEL004
If (STRING013 == "A") Then
AnsiPos 19, 4
Print STRING015
AnsiPos 19, 4
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
STRING012 = STRING014
PutUser
Goto LABEL005
Endif
Endif
:LABEL005
If (STRING013 == "B") Then
AnsiPos 19, 5
Print STRING015
AnsiPos 19, 5
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Addr(0) = STRING014
PutUser
Goto LABEL006
Endif
Endif
:LABEL006
If (STRING013 == "C") Then
AnsiPos 19, 6
Print STRING015
AnsiPos 19, 6
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Addr(2) = STRING014
PutUser
Goto LABEL007
Endif
Endif
:LABEL007
If (STRING013 == "D") Then
AnsiPos 19, 7
Print STRING015
AnsiPos 19, 7
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Addr(3) = STRING014
PutUser
Goto LABEL008
Endif
Endif
:LABEL008
If (STRING013 == "E") Then
AnsiPos 13, 8
Print STRING015
AnsiPos 13, 8
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_City = STRING014
PutUser
Goto LABEL009
Endif
Endif
:LABEL009
If (STRING013 == "F") Then
AnsiPos 19, 9
Print STRING015
AnsiPos 19, 9
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_HVPhone = STRING014
PutUser
Goto LABEL010
Endif
Endif
:LABEL010
If (STRING013 == "G") Then
AnsiPos 19, 10
Print STRING015
AnsiPos 19, 10
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_BDPhone = STRING014
PutUser
Goto LABEL011
Endif
Endif
:LABEL011
If (STRING013 == "H") Then
AnsiPos 19, 11
Print STRING015
AnsiPos 19, 11
STRING014 = ""
InputStr "_", STRING014, 14, 20, "YyNn", 2 + 4 + 4096
If (STRING014 == "Y") U_Expert = 1
If (STRING014 == "N") U_Expert = 0
PutUser
Endif
If (STRING013 == "I") Then
AnsiPos 19, 12
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
U_Trans = STRING014
PutUser
Endif
If (STRING013 == "J") Then
AnsiPos 19, 13
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
U_PageLen = STRING014
PutUser
Endif
If (STRING013 == "K") Then
AnsiPos 19, 14
Print STRING015
AnsiPos 19, 14
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Ver = STRING014
PutUser
Goto LABEL012
Endif
Endif
:LABEL012
If (STRING013 == "L") Then
AnsiPos 59, 4
Print STRING015
AnsiPos 59, 4
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Sec = STRING014
PutUser
Goto LABEL013
Endif
Endif
:LABEL013
If (STRING013 == "M") Then
AnsiPos 59, 5
Print STRING015
AnsiPos 59, 5
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_ExpSec = STRING014
PutUser
Endif
Endif
If (STRING013 == "N") Then
AnsiPos 59, 6
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
U_ExpDate = STRING014
PutUser
Endif
If (STRING013 == "O") Then
AnsiPos 59, 7
Print "Unchangable Field"
Delay 15
AnsiPos 59, 7
Print STRING015
Endif
If (STRING013 == "P") Then
AnsiPos 59, 8
Print STRING015
AnsiPos 59, 8
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
INTEGER007 = STRING014 - INTEGER007
AdjTFiles INTEGER007
PutUser
Endif
Endif
If (STRING013 == "R") Then
AnsiPos 59, 9
Print "Unchangable Field"
Delay 15
AnsiPos 59, 9
Print STRING015
Endif
If (STRING013 == "S") Then
AnsiPos 59, 10
Print STRING015
AnsiPos 59, 10
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
INTEGER004 = STRING014 - INTEGER004
AdjTBytes INTEGER004
PutUser
Endif
Endif
If (STRING013 == "T") Then
AnsiPos 59, 11
Print "Unchangable Field"
Delay 15
AnsiPos 59, 11
Print STRING015
Endif
If (STRING013 == "U") Then
AnsiPos 59, 12
Print "Unchangable Field"
Delay 15
AnsiPos 59, 12
Print STRING015
Endif
If (STRING013 == "V") Then
AnsiPos 59, 13
Print STRING015
AnsiPos 59, 13
STRING014 = ""
InputStr "_", STRING014, 14, 20, "YyNnAa", 2 + 4 + 4096
If (STRING014 == "Y") Then
U_FSEP = 0
U_FSE = 1
Endif
If (STRING014 == "N") Then
U_FSEP = 0
U_FSE = 0
Endif
If (STRING014 == "A") U_FSEP = 1
PutUser
Endif
If (STRING013 == "W") Then
AnsiPos 59, 14
Print STRING015
AnsiPos 59, 14
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Pwd = STRING014
PutUser
Goto LABEL014
Endif
Endif
:LABEL014
If (STRING013 == "X") Then
AnsiPos 19, 16
Print STRING015
Print STRING015
AnsiPos 19, 16
STRING014 = ""
InputStr "_", STRING014, 14, 40, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Cmnt1 = STRING014
PutUser
Endif
Endif
If (STRING013 == "Y") Then
AnsiPos 19, 17
Print STRING015
Print STRING015
AnsiPos 19, 17
STRING014 = ""
InputStr "_", STRING014, 14, 40, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Cmnt2 = STRING014
PutUser
Endif
Endif
If (STRING013 == "+") Then
INTEGER009 = U_RecNum(U_Name())
INTEGER009 = INTEGER009 + 1
GetAltUser INTEGER009
If (CurUser() == -1) GetAltUser 1
BOOLEAN005 = 1
Gosub LABEL001
Endif
If (STRING013 == "-") Then
INTEGER009 = U_RecNum(U_Name())
INTEGER009 = INTEGER009 - 1
GetAltUser INTEGER009
If (CurUser() == -1) GetAltUser 1
BOOLEAN005 = 1
Gosub LABEL001
Endif
If (STRING013 == "=") Then
AnsiPos 24, 21
InputStr "Enter User Number to Jump To", STRING014, 14, 3, "1234567890", 2 + 4 + 4096
GetAltUser STRING014
BOOLEAN005 = 1
Gosub LABEL001
Endif
If (STRING013 == "!") Then
U_Sec = STRING017
PutUser
Endif
If (STRING013 == "*") Then
U_Sec = STRING018
PutUser
Endif
If (STRING013 == "%") Then
U_Sec = STRING016
PutUser
Endif
If (STRING013 == "?") Then
AnsiPos 24, 21
Print " "
AnsiPos 24, 21
Print "@X07List all users on system?"
AnsiPos 50, 21
Print "@X1FYES"
AnsiPos 55, 21
Print "@X08NO"
BOOLEAN007 = 1
BOOLEAN008 = 1
STRING019 = ""
While (BOOLEAN008) Do
While (STRING019 == "") Do
STRING019 = Inkey()
EndWhile
If (((STRING019 == "LEFT") || (STRING019 == "RIGHT")) || (STRING019 == Chr(13))) Then
If (STRING019 == Chr(13)) Break
If ((STRING019 == "RIGHT") && (BOOLEAN007 == 1)) Then
AnsiPos 50, 21
Print "@X08YES"
AnsiPos 55, 21
Print "@X1FNO"
BOOLEAN007 = 0
STRING019 = ""
Endif
If ((STRING019 == "LEFT") && (BOOLEAN007 == 1)) Then
AnsiPos 50, 21
Print "@X08YES"
AnsiPos 55, 21
Print "@X1FNO"
BOOLEAN007 = 0
STRING019 = ""
Endif
If ((STRING019 == "LEFT") && (BOOLEAN007 == 0)) Then
AnsiPos 50, 21
Print "@X1FYES"
AnsiPos 55, 21
Print "@X08NO"
BOOLEAN007 = 1
STRING019 = ""
Endif
If ((STRING019 == "RIGHT") && (BOOLEAN007 == 0)) Then
AnsiPos 50, 21
Print "@X1FYES"
AnsiPos 55, 21
Print "@X08NO"
BOOLEAN007 = 1
STRING019 = ""
Endif
Endif
STRING019 = ""
EndWhile
If (BOOLEAN007 == 1) Then
PrintLn "@CLS@"
STRING014 = ""
InputStr "List [A]ll Users [N]ew Users [S]ysop's [L]ocked users?_", STRING014, 14, 20, "aASsLlNn", 2 + 4 + 4096 + 8
Newlines 1
If (STRING014 == "") Then
BOOLEAN005 = 1
Gosub LABEL001
Endif
If (STRING014 == "A") Then
BOOLEAN008 = 1
INTEGER009 = 1
While (BOOLEAN008) Do
GetAltUser INTEGER009
If (CurUser() == -1) Break
PrintLn U_Name()
INTEGER009 = INTEGER009 + 1
EndWhile
Newlines 1
BOOLEAN009 = 1
Gosub LABEL018
Endif
If (STRING014 == "N") Then
BOOLEAN008 = 1
INTEGER009 = 2
While (BOOLEAN008) Do
GetAltUser INTEGER009
If (CurUser() == -1) Break
If (STRING020 == U_Sec) PrintLn U_Name()
INTEGER009 = INTEGER009 + 1
EndWhile
Newlines 1
BOOLEAN009 = 1
Gosub LABEL018
Endif
If (STRING014 == "S") Then
BOOLEAN008 = 1
INTEGER009 = 1
While (BOOLEAN008) Do
GetAltUser INTEGER009
If (CurUser() == -1) Break
If (STRING016 == U_Sec) PrintLn U_Name()
INTEGER009 = INTEGER009 + 1
EndWhile
BOOLEAN009 = 1
Newlines 1
Gosub LABEL018
Endif
If (STRING014 == "L") Then
BOOLEAN008 = 1
INTEGER009 = 1
While (BOOLEAN008) Do
GetAltUser INTEGER009
If (CurUser() == -1) Break
If (STRING017 == U_Sec) PrintLn U_Name()
INTEGER009 = INTEGER009 + 1
EndWhile
BOOLEAN009 = 1
Newlines 1
Gosub LABEL018
Endif
Goto LABEL015
Endif
Gosub LABEL017
Endif
:LABEL015
If (STRING013 == "Q") BOOLEAN004 = 1
BOOLEAN005 = 1
Gosub LABEL002
Goto LABEL003
:LABEL016
AnsiPos 0, 23
End
:LABEL017
AnsiPos 6, 21
Print "@X0F "
AnsiPos 14, 21
:LABEL018
STRING014 = ""
InputStr "Enter User Name to Jump To", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096 + 8
If (Len(STRING014) > 1) Then
INTEGER009 = U_RecNum(STRING014)
If (INTEGER009 == -1) Then
AnsiPos 26, 22
Print "Invalid User"
Delay 15
AnsiPos 26, 22
Print STRING015
If (BOOLEAN009 == 0) Then
Goto LABEL018
Else
Goto LABEL017
Endif
Else
GetAltUser INTEGER009
BOOLEAN005 = 1
Gosub LABEL001
Endif
Else
AnsiPos 12, 21
Print " "
Goto LABEL001
Endif
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 103 Goto
; 105 Let
; 74 Print
; 26 PrintLn
; 92 If
; 1 GetUser
; 23 PutUser
; 23 InputStr
; 11 Gosub
; 2 Return
; 5 Delay
; 5 Newlines
; 92 AnsiPos
; 10 GetAltUser
; 1 AdjTBytes
; 1 AdjTFiles
;
;
; ■ Functions used :
;
; 7 -
; 54 +
; 3 -
; 76 ==
; 15 <>
; 1 >
; 1 >=
; 70 !
; 4 &&
; 3 ||
; 1 Len(
; 1 Upper()
; 2 Chr()
; 10 U_Name()
; 1 U_Ful()
; 2 U_Fdl()
; 1 U_TimeOn()
; 2 U_Bdl()
; 1 U_Bul()
; 2 Inkey()
; 19 Mask_Ascii()
; 1 PPEPath()
; 5 ReadLine()
; 4 U_RecNum()
; 6 CurUser()
;
;------------------------------------------------------------------------------
;
; Analysis flags : WRaH
;
; W - Write user ■ 5
; Program writes a user record. Although this may be normal for a
; User Editor, it may also be a way to modify an account level.
; ■ Search for : PUTUSER
;
; R - Read user ■ 5
; User records are read, this may signify that someone wants to get
; various informations about a user (for example his password), but
; this may also be normal for a program accessing user records (for
; example a User Editor)
; ■ Search for : GETALTUSER
;
; a - Adjust ratio ■ 4
; User's ratio is adjusted by changing the amount of files/bytes
; uploaded. This may be normal for a user editor.
; ■ Search for : ADJBYTES, ADJDBYTES, ADJTBYTES, ADJTFILES
;
; H - Read Password or Password History ■ 5
; Program is reading the user's password or last password history
; This may be ok for a password manager, but it is very suspect. Check!
; ■ Search for : U_PWDHIST, U_PWD
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 6 While/EndWhile
; 63 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------